home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / bash_114.zip / bash-1.14.2 / tests / glob-test < prev    next >
Text File  |  1994-03-26  |  2KB  |  179 lines

  1. #
  2. # test the shell globbing
  3. #
  4. expect()
  5. {
  6.     echo expect "$@"
  7. }
  8.  
  9. TESTDIR=/tmp/glob-test
  10. mkdir $TESTDIR
  11. cd $TESTDIR
  12.  
  13. touch a b c d abc abd abe bb bcd ca cb dd de
  14. mkdir bdir
  15.  
  16. # see if `regular' globbing works right
  17. expect '<a> <abc> <abd> <abe> <X*>'
  18. recho a* X*
  19.  
  20. expect '<a> <abc> <abd> <abe>'
  21. recho \a*
  22.  
  23. # see if null glob expansion works
  24. allow_null_glob_expansion=
  25.  
  26. expect '<a> <abc> <abd> <abe>'
  27. recho a* X*
  28.  
  29. unset allow_null_glob_expansion
  30.  
  31. # see if the code that expands directories only works
  32. expect '<bdir/>'
  33. recho b*/
  34.  
  35. # Test quoted and unquoted globbing characters
  36. expect '<*>'
  37. recho \*
  38.  
  39. expect '<a*>'
  40. recho 'a*'
  41.  
  42. expect '<a*>'
  43. recho a\*
  44.  
  45. expect '<c> <ca> <cb> <a*> <*q*>'
  46. recho c* a\* *q*
  47.  
  48. expect '<**>'
  49. recho "*"*
  50.  
  51. expect '<**>'
  52. recho \**
  53.  
  54. expect '<\.\./*/>'
  55. recho "\.\./*/"
  56.  
  57. expect '<s/\..*//>'
  58. recho 's/\..*//'
  59.  
  60. # Pattern from Larry Wall's Configure that caused bash to blow up
  61. expect '</^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/>'
  62. recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/"
  63.  
  64. # Make sure character classes work properly
  65.  
  66. expect '<abc> <abd> <abe> <bb> <cb>'
  67. recho [a-c]b*
  68.  
  69. expect '<abd> <abe> <bb> <bcd> <bdir> <ca> <cb> <dd> <de>'
  70. recho [a-y]*[^c]
  71.  
  72. expect '<abd> <abe>'
  73. recho a*[^c]
  74.  
  75. touch a-b aXb
  76. expect '<a-b> <aXb>'
  77. recho a[X-]b
  78.  
  79. touch .x .y
  80. expect '<d> <dd> <de>'
  81. recho [^a-c]*
  82.  
  83. # Make sure that filenames with embedded globbing characters are handled
  84. # properly
  85. mkdir a\*b
  86. > a\*b/ooo
  87.  
  88. expect '<a*b/ooo>'
  89. recho a\*b/*
  90.  
  91. expect '<a*b/ooo>'
  92. recho a\*?/*
  93.  
  94. expect '<no match>'
  95. cmd='echo !7'
  96. case "$cmd" in
  97. *\\!*) echo match ;;
  98. *) echo no match ;;
  99. esac
  100.  
  101. expect '<not there>'
  102. file='r.*'
  103. case $file in
  104. *.\*) echo not there ;;
  105. *) echo there ;;
  106. esac
  107.  
  108. # examples from the Posix.2 spec (d11.2, p. 243)
  109. expect '<abc>'
  110. recho a[b]c
  111.  
  112. expect '<abc>'
  113. recho a["b"]c
  114.  
  115. expect '<abc>'
  116. recho a[\b]c
  117.  
  118. expect '<abc>'
  119. recho a?c
  120.  
  121. expect '<match>'
  122. case abc in
  123. a"b"c)    echo match
  124.     ;;
  125. *)    echo BAD
  126.     ;;
  127. esac
  128.  
  129. expect '<match>'
  130. case abc in
  131. a*c)    echo match
  132.     ;;
  133. *)    echo BAD
  134.     ;;
  135. esac
  136.  
  137. expect '<ok>'
  138. case abc in
  139. "a?c")    echo bad
  140.     ;;
  141. *)    echo ok
  142.     ;;
  143. esac
  144.  
  145. expect '<ok>'
  146. case abc in
  147. a\*c)    echo bad
  148.     ;;
  149. *)    echo ok
  150.     ;;
  151. esac
  152.  
  153. expect '<ok>'
  154. case abc in
  155. a\[b]c)    echo bad
  156.     ;;
  157. *)    echo ok
  158.     ;;
  159. esac
  160.  
  161. expect '<ok>'
  162. case "$nosuchvar" in
  163. "")     echo ok ;;
  164. *)    echo bad ;;
  165. esac
  166.  
  167. # This is very odd, but sh and ksh seem to agree
  168. expect '<ok>'
  169. case abc in
  170. a["\b"]c) echo ok
  171.     ;;
  172. *)    echo bad
  173.     ;;
  174. esac
  175.  
  176. cd /
  177. /bin/rm -rf $TESTDIR
  178. exit 0
  179.